home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1997 / HAM Radio 1997.iso / vcls / wfc007.000 / include / drawgrid.hpp < prev    next >
C/C++ Source or Header  |  1996-04-08  |  5KB  |  131 lines

  1. #if ! defined ( DRAWING_OBJECTS_GRID_CLASS_HEADER )
  2.  
  3. /*
  4. ** Author: Samuel R. Blackburn
  5. ** CI$: 76300,326
  6. ** Internet: sammy@sed.csc.com
  7. **
  8. ** You can use it any way you like.
  9. */
  10.  
  11. #define DRAWING_OBJECTS_GRID_CLASS_HEADER
  12.  
  13. class CDrawingObjectGrid : public CObject
  14. {
  15.    DECLARE_SERIAL( CDrawingObjectGrid )
  16.  
  17.    protected:
  18.  
  19.       void m_Initialize( void );
  20.       void m_SetRectangles( void );
  21.  
  22.       DWORD m_NumberOfRows;
  23.       DWORD m_NumberOfColumns;
  24.       DWORD m_VerticalSpacing;
  25.       DWORD m_HorizontalSpacing;
  26.  
  27.       CObArray m_ObjectArray;
  28.  
  29.       CString m_Name;
  30.  
  31.    public:
  32.  
  33.       CDrawingObjectGrid();
  34.       CDrawingObjectGrid( DWORD number_of_rows, DWORD number_of_columns );
  35.  
  36.       virtual ~CDrawingObjectGrid();
  37.  
  38.       virtual void         Draw( CDC& device_context );
  39.       virtual CRectangle*& ElementAt( DWORD row_number, DWORD column_number );
  40.       virtual CRectangle*  GetAt( DWORD row_number, DWORD column_number );
  41.       virtual DWORD        GetHeight( void ) const;
  42.       virtual int          GetHorizontalSpacing( void ) const;
  43.       virtual BOOL         GetIndexFromPoint( DWORD& row_index, DWORD& column_index, const CPoint& point );
  44.       virtual void         GetName( CString& name_of_grid ) const;
  45.       virtual DWORD        GetNumberOfColumns( void ) const;
  46.       virtual DWORD        GetNumberOfRows( void ) const;
  47.       virtual void         GetRectangle( CRect& rect ) const;
  48.       virtual DWORD        GetVerticalSpacing( void ) const;
  49.       virtual DWORD        GetWidth( void ) const;
  50.       virtual void         RemoveAll( void );
  51.       virtual void         Serialize( CArchive& archive );
  52.       virtual void         SetAt( DWORD row_number, DWORD column_number, CRectangle *new_element );
  53.       virtual void         SetFillColor( DWORD row_number, DWORD column_number, COLORREF color );
  54.       virtual void         SetHorizontalSpacing( DWORD horizontal_spacing );
  55.       virtual void         SetLineColor( DWORD row_number, DWORD columen_number, COLORREF color );
  56.       virtual void         SetName( LPCTSTR name_of_grid = NULL );
  57.       virtual void         SetRectangle( const CRect& source );
  58.       virtual void         SetSize( DWORD number_of_rows, DWORD number_of_columns );
  59.       virtual void         SetVerticalSpacing( DWORD vertical_spacing );
  60. };
  61.  
  62. #define LABELED_GRID_ROW_NAMES     1
  63. #define LABELED_GRID_COLUMN_NAMES  2
  64. #define LABELED_GRID_ROWS_TITLE    4
  65. #define LABELED_GRID_COLUMNS_TITLE 8
  66. #define LABELED_GRID_ALL_TITLES ( LABELED_GRID_ROW_NAMES | LABELED_GRID_COLUMN_NAMES | LABELED_GRID_ROWS_TITLE | LABELED_GRID_COLUMNS_TITLE )
  67.  
  68. class CLabeledGrid : public CDrawingObjectGrid
  69. {
  70.    DECLARE_SERIAL( CLabeledGrid )
  71.  
  72.    private:
  73.  
  74.       void m_Initialize( void );
  75.  
  76.    protected:
  77.  
  78.       CStringArray m_ColumnNames;
  79.       CStringArray m_RowNames;
  80.  
  81.       CString m_RowsTitle;
  82.       CString m_ColumnsTitle;
  83.  
  84.       DWORD m_ColumnFontSize;
  85.       DWORD m_ColumnsTitleFontSize;
  86.       DWORD m_RowFontSize;
  87.       DWORD m_RowsTitleFontSize;
  88.       DWORD m_NumberOfLogicalUnitsInLongestRowName;
  89.       DWORD m_NumberOfLogicalUnitsInLongestColumnName;
  90.       DWORD m_NumberOfLogicalUnitsInRowsTitle;
  91.       DWORD m_NumberOfLogicalUnitsInColumnsTitle;
  92.       DWORD m_LabelOptions;
  93.  
  94.       CFont m_RowNamesFont;
  95.       CFont m_ColumnNamesFont;
  96.       CFont m_RowsTitleFont;
  97.       CFont m_ColumnsTitleFont;
  98.  
  99.       virtual void m_SetColumnFontSize( CDC& device_context, DWORD font_size );
  100.       virtual void m_SetColumnsTitleFontSize( CDC& device_context, DWORD font_size );
  101.       virtual void m_SetRowFontSize( CDC& device_context, DWORD font_size );
  102.       virtual void m_SetRowsTitleFontSize( CDC& device_context, DWORD font_size );
  103.  
  104.    public:
  105.  
  106.       CLabeledGrid();
  107.       CLabeledGrid( DWORD number_of_rows, DWORD number_of_columns );
  108.       virtual ~CLabeledGrid();
  109.  
  110.       virtual void Draw( CDC& device_context );
  111.       virtual void GetColumnName( DWORD column_number, CString& column_name ) const;
  112.       virtual void GetColumnsTitle( CString& columns_title ) const;
  113.       virtual void GetRowName( DWORD row_number, CString& row_name ) const;
  114.       virtual void GetRowsTitle( CString& rows_title ) const;
  115.       virtual void PrepareForPainting( CDC&  device_context,
  116.                                        DWORD row_font_size           = 8,
  117.                                        DWORD column_font_size        = 8,
  118.                                        DWORD rows_title_font_size    = 14,
  119.                                        DWORD columns_title_font_size = 14 );
  120.       virtual void RemoveAll( void );
  121.       virtual void Serialize( CArchive& archive );
  122.       virtual void SetColumnName( DWORD column_number, LPCTSTR column_name );
  123.       virtual void SetColumnsTitle( LPCTSTR columns_title = NULL );
  124.       virtual void SetLabelOptions( DWORD options );
  125.       virtual void SetRowName( DWORD row_number, LPCTSTR row_name );
  126.       virtual void SetRowsTitle( LPCTSTR rows_title = NULL );
  127.       virtual void SetSize( DWORD number_of_rows, DWORD number_of_columns );
  128. };
  129.  
  130. #endif // DRAWING_OBJECTS_GRID_CLASS_HEADER
  131.